<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>if (表达式)</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link href="../css/default.css" rel="stylesheet" type="text/css">
</head>
<body>

<h1>if (表达式)</h1>

<p>指定在 <a href="../Variables.htm#Expressions">表达式</a> 计算结果为 TRUE 时执行的命令.</p>

<pre class="Syntax">if (expression)</pre>
<h3>备注</h3>
<p>包含表达式的 if 语句与像 <em>If FoundColor &lt;&gt; Blue</em> 这样的 <a href="IfEqual.htm">传统 if 语句</a> 的区别是, 它在单词 "if" 后的字符为左大括号. 尽管这通常是通过把整个表达式括在大括号中实现的, 不过也可以用类似 <em>if (x &gt; 0) and (y &gt; 0)</em> 这样的形式. 此外, 如果单词 "if" 后是 <a href="../Functions.htm">函数调用</a> 或者类似 "not" 或 "!" 的运算符, 那么左大括号可以完全省略.</p>
<p>如果 if 语句中表达式的计算结果为 true (即除空字符串和数值 0 以外的任何结果), 那么执行 if 语句下的行或 <a href="Block.htm">区块</a>. 否则如果有相应的 ELSE, 则会跳到 else 下的行或区块执行.</p>
<p>当 IF 或 <a href="Else.htm">ELSE</a> 结构中含有多行命令时, 这些命令必须括在 <a href="Block.htm">大括号</a> 中. 不过, 如果只有一行命令从属于 IF 或 ELSE, 那么可以不用大括号. 参见此页面底部的例子.</p>
<p><a name="otb"></a>One True Brace (OTB) 风格可用于表达式形式的 if 语句中 (但不能用于 <a href="IfEqual.htm">传统的 if 语句</a>). 例如:</p>
<pre>if (x &lt; y) <strong>{</strong>
    ...
<strong>}</strong>
if WinExist("Untitled - Notepad") <strong>{</strong>
    WinActivate
<strong>}</strong>
if IsDone <strong>{</strong>
    ...
<strong>}</strong> else <strong>{</strong>
    ...
<strong>}</strong></pre>
<p>与 "else" 语句支持任何类型的语句紧跟在其右边不同, if 语句仅支持 "{" 在其右边.</p>
<p>相关提示, "<a href="IfBetween.htm">if var [not] between LowerBound and UpperBound</a>" 命令判断变量是否在两个值之间, 而 "<a href="IfIn.htm">if var [not] in value1,value2</a>" 可以用来判断变量内容是否存在于值列表中.</p>
<h3>相关</h3>
<p><a href="../Variables.htm#Expressions">表达式</a>, <a href="SetExpression.htm">赋值表达式 (:=)</a>, <a href="IfIn.htm">if var in/contains MatchList</a>, <a href="IfBetween.htm">if var between</a>, <a href="IfInString.htm">IfInString</a>, <a href="Block.htm">区块</a>, <a href="Else.htm">Else</a>, <a href="While.htm">While 循环</a> </p>
<h3>示例</h3>
<pre class="NoIndent">if (A_Index &gt; 100 or Done)
    return

if (A_TickCount - StartTime &gt; 2*MaxTime + 100)
{
    MsgBox Too much time has passed.
    ExitApp
}

if (Color = "Blue" or Color = "White")
{
    MsgBox The color is one of the allowed values.
    ExitApp
}
else if (Color = "Silver")
{
    MsgBox Silver is not an allowed color.
    return
}
else
{
    MsgBox This color is not recognized.
    ExitApp
}</pre>

</body>
</html>
